home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Wayzata's Best of Shareware PC/Windows 2
/
Wayzata's Best of Shareware 2.0 (Windows) (Wayzata Technology)(7112)(1994).bin
/
pc
/
dos
/
utility
/
lzeshe12
/
lzeshl21.doc
< prev
next >
Wrap
Text File
|
1990-03-28
|
11KB
|
217 lines
LZESHELL.EXE
Version 2.10
┌───────────────────────────────────────────────────────────────────┐
│ An English language shell program for automating the use of │
│ Fabrice Bellard's EXE file compression utilities: LZEXE for │
│ compressing EXE files; UPACKEXE for unpacking EXE files that │
│ have been packed with Microsoft's EXEPACK utility; and COMTOEXE │
│ for converting COM files to EXE files so they can be compressed. │
└───────────────────────────────────────────────────────────────────┘
(This version of LZESHELL is very similar to version 2.00 in that it
integrates three of Bellard's file compression utilities. However,
it can also run Kuo's UNLZEXE to decompress files that have been
compressed with LZEXE. One obvious use for UNLZEXE is restoring
a file that failed to run after compression.)
AUTHOR: Pete Petrakis, CIS 76555,1175
DESCRIPTION
This program is designed to work only with version 0.91 of LZEXE, a utility
that can compress EXE files substantially while leaving them executable. The
compressions LZEXE achieves are usually in the range of 30 to 40 percent,
although they are often higher than that. Programs compressed with LZEXE
decompress themselves when they are run. The decompression time is negligible.
LZEXE was written by Fabrice Bellard, of Grabels, France and is still under
development. It is a free program, but Mr. Bellard retains the copyright.
Version 0.91 of LZEXE overcomes version 0.90's problem of excessive load
memory size for compressed files. The compressed files now take about the same
amount of memory to load as they did before compression. For this reason my
previous shell program LZEFIX, which ran Microsoft's EXEMOD header utility
to reduce the excessive load sizes created by version 0.90, should not be used
with version 0.91. It isn't needed. In fact it could cause problems
(including having to reboot your system) if you try to use it with this newer
version of LZEXE. Accordingly, LZESHELL makes no adjustment to the headers of
compressed EXE files.
Unlike the previous version of LZEXE, version 0.91 prompts, in French, for
user input, depending on what it finds out about the file you have asked it
to compress. LZESHELL translates the prompts into English (the translation
is not literal) and feeds your responses to LZEXE.
That's not all it does, however. LZESHELL version 2.10 automates the use
of three of Bellard's utilities: LZEXE v0.91, UPACKEXE v1.00; and
COMTOEXE v1.01. In addition, it can also run Kuo's UNLZEXE to decompress
files that have been compressed with either version 0.90 or 0.91 of LZEXE.
-1-
UPACKEXE unpacks EXE files that have been compressed with Microsoft's
EXEPACK utility so LZEXE can do an even better compression job on them.
COMTOEXE converts .COM files to .EXE files so they can be compressed with
LZEXE. The previous versions of LZESHELL (1.00 and 1.01) were designed to run
LZEXE and UPACKEXE, but not COMTOEXE; that program had to be run separately.
Version 2.10 runs all three automatically.
Version 0.91 of LZEXE can detect files that have been EXEPACKed. When it
does, it tells you so and asks whether it should continue the compression or
quit so you can run UPACKEXE first. In that situation, you would normally end
up running two programs manually. When you use LZESHELL, however, you don't
have to quit if you want to use UPACKEXE. LZESHELL translates the prompt into
English, and if your response is that you want to unpack the file before
compressing it, it immediately runs UPACKEXE. Then it runs LZEXE again
to complete the compression. In other words, you don't go back to DOS until
both programs have been run.
If you run LZEXE alone and tell it to compress a COM file (using the
command: LZEXE filename.COM), it won't do it. Instead it will quit, with
advice to convert the file to an EXE first with COMTOEXE. Again this
means running two programs manually. If you use LZESHELL, however, the
conversion of the COM file to an EXE file by COMTOEXE proceeds automatically,
followed automatically by compression of the EXE version by LZEXE.
A point to remember about COMTOEXE is that it doesn't take your word that
the file is a COM file, because EXE files sometimes mistakenly get named
COM (such files will still run). Instead, COMTOEXE checks the file header
to see what kind of executable file it really is. If it sees the mark of an
EXE file there, it prints a warning and stops. When you are running it
through LZESHELL, however, the warning causes the falsely named *.COM file to
be renamed *.EXE, and the compression with LZEXE then proceeds automatically.
In summary, the purpose of LZESHELL is to take control of all of these fine
utilities. You only need to run one program, LZESHELL, and it runs the others
as needed.
Both UPACKEXE and LZEXE save source files as backups, changing their names
to *.OLD. This can create a problem when you run UPACKEXE then run LZEXE.
The *.OLD backup file saved by UPACKEXE will be replaced by the *.OLD file
saved by LZEXE -- you end up losing the EXEPACKed *.OLD file. LZESHELL
eliminates this problem by immediately renaming the *.OLD file produced by
UPACKEXE to *.OPK. This leaves you with two backup files -- one for the
original EXEPACKed file (*.OPK) and one for the unpacked file (*.OLD). The
third file will be your LZEXE-compressed EXE file. If the compressed file
works, you can remove both backup files from your disk. Otherwise, you can
erase the compressed EXE file and rename one of the backups to *.EXE (probably
the EXEPACKed one, *.OPK, since it's the original and it's smaller).
LZESHELL also generates English prompts for another situation that LZEXE
v.0.91 detects, namely the use of overlays by the EXE file. Here you are
given the choice of aborting the compression or continuing it (taking the
-2-
chance that the compressed file won't work). UPACKEXE v1.00 detects "internal"
overlays (I'm not sure what those are), but in that situation it only issues
a warning and requires no user choices. LZESHELL translates the warning into
English.
Finally, LZESHELL adjusts the timestamp on derivative files so they are the
same as in the original file. In contrast, LZEXE, UPACKEXE, and COMTOEXE, when
run by themselves, always give the new file the current date, which some people
feel is a shortcoming since it obliterates a useful identifier.
The features just described are identical to those in LZESHELL version 2.00.
What has been added to the program with version 2.10 is ability to run a
a new program from Japan called UNLZEXE, which decompresses files that have
been compressed by LZEXE (v0.90 or v0.91). Ability to run that program was
included for just one reason: setting the timestamp of the newly decompressed
file to what it was in its compressed form. If you run UNLZEXE by itself,
the new file will always get the current date and time. If you run it through
LZESHELL, however, it gets the same date and time as the source file.
RUNNING THE PROGRAM
LZESHELL, LZEXE (v.0.91), UPACKEXE (v1.00), and COMTOEXE (v.1.01), UNLZEXE
(v. 0.20), or their directories, should be on your system's path (use the DOS
PATH command to do this, preferably in an AUTOEXEC.BAT file). This will allow
you to move freely from directory to directory to compress or decompress files.
You should always go to the directory of the file you want to process so your
source and derivative files can stay together and receive the same timestamp
as the original.
Compressing EXE files:
To compress an EXE file, type the following at the DOS prompt:
LZESHELL [EXE file to be compressed]
Use of the .EXE extension is optional. If you don't use an extension, LZESHELL
will assume it's an EXE file.
Compressing COM files:
To compress a COM file, type the following at the DOS prompt:
LZESHELL [filename.COM]
Notice that you have to use the .COM extension on the command line if the
file you want to compress is that type. That extension acts as a flag that
tells LZESHELL that the first thing it must do is run COMTOEXE to convert
the file to an EXE file before compressing it with LZEXE. If you don't
use the COM extension, you will get a "file not found" error (unless you
happen to have an EXE file with the same first name).
-3-
As noted, an EXE file that has been erroneously named *.COM will not be
processed by COMTOEXE. However, the message that COMTOEXE prints in that
situation signals LZESHELL to rename the file to *.EXE, then run LZEXE to
compress it.
Decompressing EXE files:
To decompress an EXE file that has been compressed with LZEXE, type the
following at the DOS prompt:
LZESHELL [compressedExefile] /u
The /u switch tells LZESHELL to run Kuo's UNLZEXE. Initally the decompressed
file is named $TmpFil$.EXE and the original compressed file retains its name.
However, LZESHELL renames these files just before quitting. The original
compressed file gets the extension .OLZ while $TmpFil$.EXE ends up with the
name of the original compressed file. Both files are given the same date
and time.
DISPLAYS
Translated warnings and prompts will appear in a box on your screen. At
the end of the processing a "scorecard" will appear showing you the file
size before and after compression or decompression; the size change in bytes;
and, in the case of compression, the percent reduction.
DISTRIBUTION
LZESHELL may be freely distributed provided it's not modified and no money
is charged for it. Please be sure this document accompanies it.
DISCLAIMER
Pete Petrakis accepts no responsibility or liability for any mishap
resulting from the use of LZESHELL. To protect yourself against loss of
valuable files you are advised to keep backups in a safe place or check the
performance of processed files thoroughly before discarding their backups.
LZEXE, perhaps its associated programs, and UNLZEXE are still under
development, so there is no assurance that this particular version of LZESHELL
will be compatible with future revisions that might be made. I will try to
update LZESHELL as needed to maintain compatibility. Revisions will intially
be made available on the IBMSYS Forum of Compuserve (type GO IBMSYS).
Pete Petrakis
1236 River Bay Road
Annapolis, Maryland 21401
-4-